
using System;
using System.Runtime.Serialization;
using System.Collections.Generic;

namespace PolePosition.v3.EntityLibrary
{

    /// <summary>
    /// 
    /// </summary>
	/// <remarks></remarks>
	[DataContract(Namespace = "http://Chfa.DataContracts/2007/10", Name = "Lookup")]
	public sealed partial class LookupTables
	{	
		public enum Tables
		{
			All,
			CentralOffices,
			DistributionClasses,
			DistributionLengths,
			DistributionMeterNotes,
			DistributionPhases,
			DistributionsTopTypes,
			Handheld,
			MetersTopTypes,
			RemedyStatus,
			VendorContactTypes,
			VendorInspVisitXmissionStructuresInspectionType,
			VendorInspVisitXmissionStructuresNotes,
			VendorInspVisitXmissionStructuresResultTypes,
			VendorVisitType,
			XMissionStructuresPoleClasses,
			XMissionStructuresPoleSpecies,
			XMissionStructuresPoleTopTypes,
			XMissionStructuresPoleTreatments,
			XMissionStructuresTopTypes,
			ReportsProject,
			Settings,
			UtilityContactTypes,
            VendorDistributionLookups
		}
		
		[DataMember]
		public List<string> TableList
		{
			get 
			{
				List<string> _list = new List<string>();
				_list.Add("CentralOffices");
				_list.Add("DistributionClasses");
				_list.Add("DistributionLengths");
				_list.Add("DistributionMeterNotes");
				_list.Add("DistributionPhases");
				_list.Add("DistributionsTopTypes");
				_list.Add("Handheld");
				_list.Add("MetersTopTypes");
				_list.Add("RemedyStatus");
				_list.Add("VendorContactTypes");
				_list.Add("VendorInspVisitXmissionStructuresInspectionType");
				_list.Add("VendorInspVisitXmissionStructuresNotes");
				_list.Add("VendorInspVisitXmissionStructuresResultTypes");
				_list.Add("VendorVisitType");
				_list.Add("XMissionStructuresPoleClasses");
				_list.Add("XMissionStructuresPoleSpecies");
				_list.Add("XMissionStructuresPoleTopTypes");
				_list.Add("XMissionStructuresPoleTreatments");
				_list.Add("XMissionStructuresTopTypes");
				_list.Add("ReportsProject");
				_list.Add("Settings");
				_list.Add("UtilityContactTypes");
                _list.Add("VendorDistributionLookups");
				return _list;
			}
			private set 
			{ 
				//throw new System.NotImplementedException("Set is not implemented and should not be used. This is only present for serialization."); 
			}
		}

		ProjectCommon2.Generics.EntityCollection<CentralOfficeEntity> m_CentralOffices	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<CentralOfficeEntity> CentralOffices
		{
			get { return m_CentralOffices; }
			set { m_CentralOffices = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<DistributionClassesEntity> m_DistributionClasses	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<DistributionClassesEntity> DistributionClasses
		{
			get { return m_DistributionClasses; }
			set { m_DistributionClasses = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<DistributionLengthEntity> m_DistributionLengths	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<DistributionLengthEntity> DistributionLengths
		{
			get { return m_DistributionLengths; }
			set { m_DistributionLengths = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<DistributionMeterNoteEntity> m_DistributionMeterNotes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<DistributionMeterNoteEntity> DistributionMeterNotes
		{
			get { return m_DistributionMeterNotes; }
			set { m_DistributionMeterNotes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<DistributionPhaseEntity> m_DistributionPhases	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<DistributionPhaseEntity> DistributionPhases
		{
			get { return m_DistributionPhases; }
			set { m_DistributionPhases = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<DistributionsTopTypeEntity> m_DistributionsTopTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<DistributionsTopTypeEntity> DistributionsTopTypes
		{
			get { return m_DistributionsTopTypes; }
			set { m_DistributionsTopTypes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<HandheldEntity> m_Handheld	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<HandheldEntity> Handheld
		{
			get { return m_Handheld; }
			set { m_Handheld = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<MetersTopTypeEntity> m_MetersTopTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<MetersTopTypeEntity> MetersTopTypes
		{
			get { return m_MetersTopTypes; }
			set { m_MetersTopTypes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<RemedyStatusEntity> m_RemedyStatus	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<RemedyStatusEntity> RemedyStatus
		{
			get { return m_RemedyStatus; }
			set { m_RemedyStatus = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<VendorContactTypeEntity> m_VendorContactTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<VendorContactTypeEntity> VendorContactTypes
		{
			get { return m_VendorContactTypes; }
			set { m_VendorContactTypes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<VendorInspVisitXmissionStructuresInspectionTypeEntity> m_VendorInspVisitXmissionStructuresInspectionType	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<VendorInspVisitXmissionStructuresInspectionTypeEntity> VendorInspVisitXmissionStructuresInspectionType
		{
			get { return m_VendorInspVisitXmissionStructuresInspectionType; }
			set { m_VendorInspVisitXmissionStructuresInspectionType = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<VendorInspVisitXmissionStructuresNoteEntity> m_VendorInspVisitXmissionStructuresNotes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<VendorInspVisitXmissionStructuresNoteEntity> VendorInspVisitXmissionStructuresNotes
		{
			get { return m_VendorInspVisitXmissionStructuresNotes; }
			set { m_VendorInspVisitXmissionStructuresNotes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<VendorInspVisitXmissionStructuresResultTypeEntity> m_VendorInspVisitXmissionStructuresResultTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<VendorInspVisitXmissionStructuresResultTypeEntity> VendorInspVisitXmissionStructuresResultTypes
		{
			get { return m_VendorInspVisitXmissionStructuresResultTypes; }
			set { m_VendorInspVisitXmissionStructuresResultTypes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<VendorVisitTypeEntity> m_VendorVisitType	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<VendorVisitTypeEntity> VendorVisitType
		{
			get { return m_VendorVisitType; }
			set { m_VendorVisitType = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleClassesEntity> m_XMissionStructuresPoleClasses	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleClassesEntity> XMissionStructuresPoleClasses
		{
			get { return m_XMissionStructuresPoleClasses; }
			set { m_XMissionStructuresPoleClasses = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleSpeciesEntity> m_XMissionStructuresPoleSpecies	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleSpeciesEntity> XMissionStructuresPoleSpecies
		{
			get { return m_XMissionStructuresPoleSpecies; }
			set { m_XMissionStructuresPoleSpecies = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleTopTypeEntity> m_XMissionStructuresPoleTopTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleTopTypeEntity> XMissionStructuresPoleTopTypes
		{
			get { return m_XMissionStructuresPoleTopTypes; }
			set { m_XMissionStructuresPoleTopTypes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleTreatmentEntity> m_XMissionStructuresPoleTreatments	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<XMissionStructuresPoleTreatmentEntity> XMissionStructuresPoleTreatments
		{
			get { return m_XMissionStructuresPoleTreatments; }
			set { m_XMissionStructuresPoleTreatments = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<XMissionStructuresTopTypeEntity> m_XMissionStructuresTopTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<XMissionStructuresTopTypeEntity> XMissionStructuresTopTypes
		{
			get { return m_XMissionStructuresTopTypes; }
			set { m_XMissionStructuresTopTypes = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<ReportsProjectEntity> m_ReportsProject	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<ReportsProjectEntity> ReportsProject
		{
			get { return m_ReportsProject; }
			set { m_ReportsProject = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<SettingEntity> m_Settings	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<SettingEntity> Settings
		{
			get { return m_Settings; }
			set { m_Settings = value;}
		}
		
		ProjectCommon2.Generics.EntityCollection<UtilityContactTypeEntity> m_UtilityContactTypes	;
		[DataMember]
		public ProjectCommon2.Generics.EntityCollection<UtilityContactTypeEntity> UtilityContactTypes
		{
			get { return m_UtilityContactTypes; }
			set { m_UtilityContactTypes = value;}
		}

        ProjectCommon2.Generics.EntityCollection<VendorDistributionLookupsEntity> m_VendorDistributionLookups;
        [DataMember]
        public ProjectCommon2.Generics.EntityCollection<VendorDistributionLookupsEntity> VendorDistributionLookups
        {
            get { return m_VendorDistributionLookups; }
            set { m_VendorDistributionLookups = value; }
        }
				
		public LookupTables GetChanges()
		{
			//TODO: implement
			return null;
		}
	}
}